<?php
/**
 * Модель голосования, поскольку голосование это раширенный итем, то она наследуется от него
 *
 * @package default
 * @author Alexander Sibiryakov
 **/
$this->useClass('Model_Item');

class Model_Vote extends Model_Item
{
	/**
	 * Проверить голосовал ли пользователь, в этом голосовании
	 *
	 * @return boolean
	 * @author Alexander Sibiryakov
	 **/
	public function checkUserVote($item_oid, $user_oid) {
		$o = $this->getItem($item_oid);
		if (isset($o->data['voters'][ $user_oid ])) {
			return true;
		} else {
			return false;
		}
	}

	public function addUserVote($item_oid, $vote_variant, $user_oid) {
		$o = $this->getItem($item_oid);
		if (isset($o->data['votes'])) {
			$o->data['votes'][$vote_variant]++;
		} else {
			$o->data['votes'][$vote_variant] = 1;
		}
		$o->data['voters'][$user_oid] = 1;
		return $this->upItem($o);
	}

	public function closeVote($item_oid) {
		$o = $this->getItem($item_oid);
		if (isset($o->data['date_till'])) {
			$o->data['date_till'] = RL_CyrDate::newNow()->format("%Y-%m-%d");
		}
		return $this->upItem($o);
	}

	public function openVote($item_oid) {
		$o = $this->getItem($item_oid);
		if (isset($o->data['date_till'])) {
			$o->data['date_till'] = '';
		}
		return $this->upItem($o);
	}

	// @override
	public function saveItem( fobject $obj ) {

		$data = $obj->data;
		$answers = array();

		foreach (explode("\n", $data['answers']) as $i=>$text) {
			$answer = array();
			$answer['text'] = trim($text);
			$answer['num'] = $i;
			$answer['voters'] = 0;

			$answers[] = $answer;
		}

		$data['answers'] = $answers;

		$obj->data = $data;

		return parent::saveItem($obj);
	}

} // END class
